package com.bjc.platform.service;

import java.util.List;
import java.util.Map;

import com.bjc.platform.model.AdmRole;

/**
 * 和角色相关的业务接口
 * 
 * @author Administrator
 * 
 */
public interface AdmRoleService {

	/**
	 * 角色已存在
	 */
	public static int EXIST_ROLE_NAME = 1;
	/**
	 * 有效角色
	 */
	public static int VALID_ROLE = 0;

	/**
	 * 查询所有角色信息, 如果当前用户拥有的角色标记为'checked'
	 * 
	 * @return
	 */
	List<Map<String, Object>> getAllWithUserId(Long userId);

	/**
	 * 查询flag=1的有效角色
	 * 
	 * @return
	 */
	List<AdmRole> getAll();

	/**
	 * 根据id查找角色
	 * 
	 * @param id
	 * @return
	 */
	AdmRole get(Long id);

	/**
	 * 保存角色信息
	 * 
	 * @param role
	 * @return
	 */
	AdmRole save(AdmRole role);

	/**
	 * 删除角色信息
	 */
	void delete(AdmRole role);

	/**
	 * 新增,修改时检查角色信息是否有效
	 * 
	 * @param roleName
	 * @return
	 */
	int validRoleCheck(AdmRole role);

	/**
	 * 查询角色的树结构
	 * 
	 * @return
	 */
	List<Map<String, Object>> getRoleForTree();
}
